package priv.conceit.study.book.lambda.chapter5;

import priv.conceit.study.book.lambda.common.entity.Album;
import priv.conceit.study.book.lambda.common.entity.Artist;
import priv.conceit.study.book.lambda.common.entity.SampleData;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 高级集合类 和 收集器
 * 5.3.3
 * 数据分块
 *
 *
 *
 * @author Conceit
 * @since 1.0.0, 2021/9/28
 */
public class PartitioningData {

    public static void main(String[] args) {

        //将同一个流中的数据进行分块
        //比如讲一张专辑里的所有 艺术家/团队 进行分类 solo一块  其余一块
        //Map<Boolean,List<Artist>>

        Stream<Album> albumStream= SampleData.albumAllStream;
        Map<Boolean, List<Artist>> map=albumStream.flatMap(album -> album.getMusicians()).collect(Collectors.partitioningBy(artist -> artist.isSolo()));
        map.forEach((k,v)->{
            System.out.println(k);
            System.out.println(v);
        });

    }
}
